<?php
	/*
  	 * 從指定的csv檔裡，撈出全部資料或指定ID的資料。
  	 * (有可能是使用者csv檔的內容格式輸入錯誤，造成撈不到任何資料而傳出空陣列。)
  	 * @param str $csvFName CSV檔的檔名。
  	 * @param $itemId NULL:表示撈全部資料；int:表示撈指定ID的資料；ary:表示依照
  	 * 陣列裡紀錄的資料索引值的順序來撈出資料。
  	 * 
  	 * @return ary $ary_items 資料
  	 */
	function getFromCSV($csvFName, $itemId=NULL)
	{
		//為了讓繁體中文能正常顯示。
		setlocale(LC_ALL, 'zh_TW.UTF-8');
		
		$row = 1;
		$ary_items = array();
		if (($handle = fopen($csvFName, "r")) !== FALSE) 
		{
			switch(TRUE)
			{
				//表示撈csv檔裡面全部的商品資料。
				case (is_null($itemId)):
					while (($data = fgetcsv($handle, 0, ",")) !== FALSE) 
				    {
				        array_push($ary_items, $data);
				    }
					break;

				//表示依照傳入的商品ID陣列順序，從csv檔撈出對應的商品資料。
				case (is_array($itemId));
					foreach($itemId as $eachItemId)
					{
						while (($data = fgetcsv($handle, 0, ",")) !== FALSE) 
					    {
					    	if($eachItemId == $data[0])
					        	array_push($ary_items, $data);
					    }
					    rewind($handle);
					}
					break;
				
				//表示只傳入一個商品ID，只要撈一筆符合的商品資料。
				default:
					while (($data = fgetcsv($handle, 0, ",")) !== FALSE) 
				    {
				        if($itemId == $data[0])
				        {
				        	array_push($ary_items, $data);
				        	break;
				        }
				    }
					break;
			}
		    fclose($handle);
		}
		return $ary_items;
	}
	
	